1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to a system and method for creating global sessions across converged protocol applications.
2. Description of Related Art
A converged protocol application is an application or service that spans multiple protocols and interacts with different data network entities using different communication protocols. Such converged applications are increasingly being utilized in today's data network environment in which services of various types utilize a plurality of different protocols are used to perform various interactions between data network entities.
For example, HyperText Transfer Protocol (HTTP) is used to transfer data across the World Wide Web, Session Initiation Protocol (SIP) is used to initialize multimedia sessions across data networks, Post Office Protocol 3 (POP3) is used by client machines to access electronic mail data on remote electronic mail servers, etc. Two or more of these protocols may be used together in a converged application to achieve a desired functionality. Because applications today integrate many different services into a single application or set of applications, converged applications are becoming more prevalent.
WebSphere Application Server™, a software application server available from International Business Machines Corporation of Armonk, N.Y., provides a programmatic API and infrastructure, based on the JSR116 Java standard, to allow developers to create converged applications. There are two ways to use this API to create converged applications: 1) either one protocol (typically HTTP) is used as a control protocol while the application communicates over the other protocol out of the back-end, or 2) protocol sessions must be joined together by encoding the reference used to communicate with the service, e.g., a Uniform Resource Locator (URL) with an identifier that correlates the sessions.
The second approach is particularly important to support distributed deployments, where a technique referred to as “session affinity” is used to route requests to application server instances that house the active sessions. All protocol sessions that participate in a converged session must live in the same application server instance. In order to enable appropriate routing of a converged application request, the encoded identifier must be present, i.e. hard coded into the URL, to enable the load balancing infrastructure to perform correct routing. The disadvantage of this approach is that the client requester must explicitly encode the request identifier in order to join together two sessions and client application logic must be explicitly programmed to support this behavior. Moreover, there is currently no known mechanism for associating multiple converged application sessions into a single global session.